﻿#pragma once

#include "acis/dcl_cstr.h"
#include "acis/acis.hxx"
#include "acis/api.hxx"

/**
 * @brief  		该接口用于对指定的实体（及其子实体）进行离散处理（分面），对标acis接口api_facet_entity
 * @details     该接口用于对给定的实体进行分面操作，可以通过 `facet_options` 对象来指定 Faceter 的行为。
 *
 * 本接口没有提供容差`facet_options` 对象，采用默认容差即可，具体容差要求如下
 * 面质量 面质量控制面被分面的精确度。它指定了位置公差和角度公差。设置如下：
 *	中粗（medium_coarse）：指定法线公差为 30 度，表面公差为物体包围盒对角线长度的 0.002 倍。
 * 边质量 边质量设置控制边的分面精度相对于面的提升程度。与面质量相同，它也指定了位置公差和角度公差。设置如下：
 *	更好（better）：指定边的公差比面的公差紧两倍。（这是默认值）
 *
 * 分面结果会传递到当前的 `MESH_MANAGER`，由其根据具体需要进行另外处理，
 * 面离散的结果使用INDEXED_MESH的形式将结果绑定至face，测试主要检查面离散的结果正确性，即是否满足容差要求。
 *
 * 错误处理：传入的实体指针必须非 NULL，并且必须是 BODY、LUMP、SHELL 或 FACE 类型的实体。
 *
 * @param[out]	entity 指定要分面的实体。
 * @return		函数执行结果
 */

DECL_CSTR outcome answer_api_facet_entity(ENTITY* entity);
